<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../style.css" rel="stylesheet" type="text/css">
    <title>PETSc: Summary of Nonlinear Solvers Available from PETSc</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Summary of Nonlinear Solvers Available from PETSc<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../index.html">Home</a></li>
        <li><a href="../download/index.html">Download</a></li>
        <li><a href="../features/index.html">Features</a></li>
        <li>
          <a href="../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="index.html">Manual pages and Users Manual</a></li>
            <li><a href="referencing.html">Citing PETSc</a></li>
            <li><a href="tutorials/index.html">Tutorials</a></li>
            <li><a href="installation.html">Installation</a></li>
            <li><a href="saws.html">SAWs</a></li>
            <li><a href="changes/index.html">Changes</a></li>
            <li><a href="bugreporting.html">Bug Reporting</a></li>
            <li><a href="codemanagement.html">Code Management</a></li>
            <li><a href="faq.html">FAQ</a></li>
            <li><a href="license.html">License</a></li>
            <li><span class="current">Linear Solver Table</span></li>
          </ul>
        </li>
        <li><a href="../publications/index.html">Applications/Publications</a></li>
        <li><a href="../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../miscellaneous/external.html">External Software</a></li>
        <li><a href="../developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <!--This controls the style for the 6th and 7th column-->
    <style type="text/css">
      tr > td:nth-child(6), tr > td:nth-child(7) {
        text-align: center;
      }
    </style>

    <div align="center" id="main" >

      <h2>Summary of Nonlinear Solvers Available from PETSc</h2>
<h3>See the paper <a href="http://www.mcs.anl.gov/papers/P2010-0112.pdf">Composing Scalable Nonlinear Algebraic Solvers</a> or the PETSc users manual for details on the algorithms</h3>
      <h3>Requests and contributions welcome</h3>

      <table border="1" summary="Summary of Nonlinear Solvers Available from PETSc">

        <thead>
          <tr>
            <th>Algorithm</th>
            <th><a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESType.html">Name of solver</a></th>
          </tr>
            <th></th>
        </thead>

        <!-- The tfoot *must* be before tbody!!!! -->
        <tfoot>
          <tr>
            <td colspan="7">

              <p>
                <a name="nolinesearch">*</a> Does not support a line search</a>
              </p>

            </td>
          </tr>
        </tfoot>

        <tbody>
          <tr>
            <td>Newton's method</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNEWTONLS.html">newtonls</a>
            </td>
            <th>Use -snes_mf for matrix-free linear solvers</th>
          </tr>

          <tr>
            <td>Newton's method with trust region<a href="#nolinesearch">*</a></td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNEWTONTR.html">newtontr</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Single linearization<a href="#nolinesearch">*</a></td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESKSPONLY.html">ksponly</a>
            </td>
            <th>Essentially one step of Newtwon without a line search</th>
          </tr>

          <tr>
            <td>Quasi-Newton method (BFGS)</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESQN.html">qn</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Nonlinear CG</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNCG.html">ncg</a>
            </td>
            <th>Requires nearly symmetric Jacobian for good convergence</th>
          </tr>

          <tr>
            <td>Nonlinear GMRES</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNGMRES.html">ngmres</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Anderson mixing</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESANDERSON.html">anderson</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Nonlinear Richardson</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNRICHARDSON.html">nrichardson</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Nonlinear Gauss-Siedel<a href="#nolinesearch">*</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNGS.html">ngs</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Full Approximation Scheme (nonlinear multigrid)</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESFAS.html">fas</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Nonlinear additive Schwarz method<a href="#nolinesearch">*</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESNASM.html">nasm</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Nonlinear additive Schwarz preconditioned inexact Newton (ASPIN) methods</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESASPIN.html">aspin</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Composite; combine several nonlinear solvers</td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESCOMPOSITE.html">composite</a>
            </td>
            <th></th>
          </tr>

          <tr>
            <td>Preconditioned nonlinear solver/td>
            <td>
              <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESGetNPC.html">SNESGetNPC()</a>
            </td>
            <th>Can be combined to accelerate many of the solvers</th>
          </tr>

        </tbody>
      </table>


    </div>

    <!--end-->
  </body>
</html>
